object LoopConditionDemo extends App {
  // 罚款规则：每天0.5元，最多不超过图书价格的30%
  val bookPrice = 50.0 // 图书价格
  val maxFineRate = 0.3 // 最大罚款比例
  val maxFine = bookPrice * maxFineRate // 最大罚款金额
  val dailyFine = 0.5 // 每天罚款金额

  // 模拟输入超期天数（实际应用中可改为用户输入）
  var overDays = 25 // 超期天数
  var totalFine = 0.0

  // 合理设计的循环条件：避免无限循环
  while (overDays > 0 && totalFine < maxFine) {
    // 计算当天罚款（不超过剩余可罚金额）
    val fineForDay = math.min(dailyFine, maxFine - totalFine)
    totalFine += fineForDay
    overDays -= 1
    println(s"已计算1天罚款：${fineForDay%.2f}元，累计：${totalFine%.2f}元，剩余超期天数：$overDays")
  }

  // 输出结果
  if (totalFine >= maxFine) {
    println(s"\n已达到最大罚款金额（${maxFine%.2f}元），停止计算")
  } else {
    println(s"\n所有超期天数已计算完毕")
  }
  println(s"最终罚款金额：${totalFine%.2f}元")

}